লারাভেল (Laravel) একটি শক্তিশালী PHP ফ্রেমওয়ার্ক যা ডেভেলপারদের জন্য অনেক সহজ ও কার্যকরী টুল সরবরাহ করে। এর মধ্যে একটি গুরুত্বপূর্ণ ফিচার হল পাসওয়ার্ড রিসেট (Password Reset), যা ব্যবহারকারীদের তাদের পাসওয়ার্ড পুনরুদ্ধার করতে সাহায্য করে। লারাভেল ইনবিল্ট পাসওয়ার্ড রিসেট সিস্টেম সরবরাহ করে যা খুব সহজেই কনফিগার ও ব্যবহৃত হতে পারে।
পাসওয়ার্ড রিসেট হল একটি প্রক্রিয়া যেখানে ব্যবহারকারীরা তাদের ভুলে যাওয়া পাসওয়ার্ড পুনরুদ্ধার করতে পারেন। লারাভেল ফ্রেমওয়ার্ক এই প্রক্রিয়া সম্পাদনের জন্য প্রয়োজনীয় ফিচারগুলি ইনবিল্টভাবে প্রদান করে। এটি একটি সিকিউর প্রক্রিয়া যাতে ইমেইল বা অন্যান্য মাধ্যমে পাসওয়ার্ড রিসেট লিঙ্ক পাঠানো হয় এবং ব্যবহারকারী সেই লিঙ্কের মাধ্যমে পাসওয়ার্ড পরিবর্তন করতে পারেন।
লারাভেল পাসওয়ার্ড রিসেট সিস্টেমটি ডেভেলপারদের জন্য স্বয়ংক্রিয়ভাবে ইমেইল পাঠানোর ব্যবস্থা করে, যেখানে একটি পাসওয়ার্ড রিসেট লিঙ্ক থাকবে। ব্যবহারকারী এই লিঙ্কে ক্লিক করে তাদের নতুন পাসওয়ার্ড সেট করতে পারবেন।
পাসওয়ার্ড রিসেট সিস্টেম কাজ করার জন্য আপনাকে কিছু কনফিগারেশন করতে হবে।
প্রথমেই, .env
ফাইলে আপনার মেইল সেটিংস কনফিগার করুন:
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=example@example.com
MAIL_FROM_NAME="${APP_NAME}"
এখানে আপনার SMTP সার্ভারের তথ্য যেমন হোস্ট, পোর্ট, ইউজারনেম এবং পাসওয়ার্ড নির্ধারণ করতে হবে।
লাভেল পাসওয়ার্ড রিসেট সিস্টেমের জন্য password_resets
নামে একটি টেবিল ব্যবহার করে। এই টেবিলটি মাইগ্রেশন ফাইলে পূর্বেই কনফিগার করা থাকে। আপনি মাইগ্রেশন চালিয়ে এটি তৈরি করতে পারেন:
php artisan migrate
এটি ডাটাবেসে password_resets
টেবিল তৈরি করবে, যেখানে পাসওয়ার্ড রিসেট টোকেন সংরক্ষণ হবে।
লারাভেল ইনবিল্ট রাউট এবং কন্ট্রোলার দিয়ে পাসওয়ার্ড রিসেট সিস্টেমের সুবিধা প্রদান করে। এর মধ্যে কয়েকটি গুরুত্বপূর্ণ রাউট হলো:
এটি স্বয়ংক্রিয়ভাবে কনফিগার করা থাকে, তবে আপনি চাইলে কাস্টমাইজও করতে পারেন।
লারাভেলে Auth::routes()
কমান্ডের মাধ্যমে আপনি এই রাউটগুলো স্বয়ংক্রিয়ভাবে তৈরি করতে পারেন:
Auth::routes(['verify' => true]);
এটি পাসওয়ার্ড রিসেট, লগইন, রেজিস্ট্রেশন, ইত্যাদি রাউটগুলো তৈরি করবে।
লারাভেল PasswordController
ক্লাসে পাসওয়ার্ড রিসেটের জন্য প্রয়োজনীয় সব ফিচার সরবরাহ করে। আপনি চাইলে এই কন্ট্রোলার কাস্টমাইজ করতে পারেন।
use Illuminate\Support\Facades\Password;
public function sendResetLinkEmail(Request $request)
{
$request->validate([
'email' => 'required|email',
]);
$response = Password::sendResetLink($request->only('email'));
return $response == Password::RESET_LINK_SENT
? back()->with('status', 'পাসওয়ার্ড রিসেট লিঙ্ক আপনার ইমেইলে পাঠানো হয়েছে!')
: back()->withErrors(['email' => 'আপনার ইমেইল সঠিক নয়।']);
}
এই কন্ট্রোলারটি পাসওয়ার্ড রিসেট লিঙ্ক ইমেইলে পাঠানোর কাজটি করে।
ব্যবহারকারীরা যখন রিসেট লিঙ্কে ক্লিক করেন, তখন তারা একটি পাসওয়ার্ড রিসেট ফর্ম দেখতে পাবেন। এখানে তাদের নতুন পাসওয়ার্ড ইনপুট করতে হবে। লারাভেল এর জন্য নিজস্ব ফর্ম সরবরাহ করে:
<form method="POST" action="{{ route('password.update') }}">
@csrf
<input type="hidden" name="token" value="{{ $token }}">
<input type="email" name="email" value="{{ $email ?? old('email') }}" required autofocus>
<input type="password" name="password" required>
<input type="password" name="password_confirmation" required>
<button type="submit">পাসওয়ার্ড রিসেট করুন</button>
</form>
এই ফর্মে ব্যবহারকারী নতুন পাসওয়ার্ড ইনপুট করে সাবমিট করবেন এবং তার পরেই পাসওয়ার্ড পরিবর্তন হয়ে যাবে।
আপনি পাসওয়ার্ড রিসেট সফল হলে এবং ত্রুটি ঘটলে ব্যবহারকারীদের যথাযথ বার্তা দেখাতে পারেন। উদাহরণস্বরূপ, পাসওয়ার্ড রিসেট সফল হলে একটি কনফার্মেশন বার্তা পাঠানো হবে এবং কোনো ত্রুটি ঘটলে তা ব্যবহারকারীকে জানানো হবে।
লারাভেল পাসওয়ার্ড রিসেট সিস্টেম খুবই শক্তিশালী এবং ব্যবহার সহজ। এটি ডেভেলপারদের একটি নিরাপদ এবং কার্যকরী পদ্ধতিতে ব্যবহারকারীদের পাসওয়ার্ড রিসেট করার সুযোগ দেয়, এবং স্বয়ংক্রিয়ভাবে প্রক্রিয়া পরিচালনা করে।